/**
 * 学习目标： 自行实现Partial 和 Readonly
 * 需求： 从已有的对象结构中，生成新的对象，并且键名保持一致
 */

type Person = {
  name: string,
  age: number,
  gender: string
};

type MyPartial<T> = {
  [key in keyof T]: T[key];
};

type MyReadonly<T> = {
  readonly [P in keyof T]: T[P];
};

const zs: Partial<Person> = {
  name: 'zs',
  age: 18
};